#ifndef PIEZAINSTRUMENTO_H
#define PIEZAINSTRUMENTO_H

#include <QPainter>
#include "conversorunidades.h"
#include "dibujo3d.h"
#include "cuadrilatero.h"
#include "textura.h"

class PiezaInstrumento 
{
public:
    PiezaInstrumento();
    virtual ~PiezaInstrumento();

    void dibujar(QPainter* painter, ConversorUnidades* conversor, bool esquema);

    virtual void setEncuadre(const QRectF& encuadreReal) { this->encuadreReal = encuadreReal; }

	void setNota(const QString& nombreNota) { this->nombreNota = nombreNota; }

    void setTextura(Textura* textura) { cuadrilatero.setTextura(textura); }

	QString getNombreNota() { return nombreNota; }

    Dibujo3d* getDibujo3d() { return &cuadrilatero; }

    virtual void actualizar() = 0;

protected:
    virtual void dibujarEsquema(QPainter* painter, ConversorUnidades* conversor) = 0;
    virtual void dibujarNotas(QPainter* painter, ConversorUnidades* conversor) = 0;

	QColor getColor();
    int getIntensidad();

protected:
    QRectF encuadreReal;    
	QString nombreNota;
    QPixmap pixmapNota;

    Cuadrilatero cuadrilatero;
};

#endif // PIEZAINSTRUMENTO_H

